9626
23464
Właśnie zainstalowałem Python 3.6.1 dla MacOS X
Kiedy próbuję uruchomić konsolę (lub cokolwiek z Python3), pojawia się ten błąd:
AttributeError: moduł „enum” nie ma atrybutu „IntFlag”
$ /Library/Frameworks/Python.framework/Versions/3.6/bin/python3
Nie udało się zaimportować modułu witryny
Traceback (ostatnie ostatnie połączenie):
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”, wiersz 544, w 
Główny()
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”, wiersz 530, w głównym
znane_ścieżki = addusersitepackages (znane_ścieżki)
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”, wiersz 282, w addusersitepackages
user_site = getusersitepackages ()
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”, wiersz 258, w ​​getusersitepackages
user_base = getuserbase () # to również ustawi USER_BASE
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py”, wiersz 248, w getuserbase
USER_BASE = get_config_var ('baza użytkowników')
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py”, wiersz 601, w get_config_var
return get_config_vars (). get (nazwa)
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py”, wiersz 580, w get_config_vars
import _osx_support
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py”, wiersz 4, w 
import re
Plik „/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py”, wiersz 142, w 
klasa RegexFlag (enum.IntFlag):
AttributeError: moduł „enum” nie ma atrybutu „IntFlag”
Klasa IntFlag istnieje w enum.py. Dlaczego więc wyrzucany jest błąd AttributeError? 
Dzieje się tak, ponieważ wyliczenie nie jest standardowym modułem wyliczenia biblioteki. Prawdopodobnie masz zainstalowany pakiet enum34.
Jednym ze sposobów sprawdzenia, czy tak jest, jest sprawdzenie wyliczenia właściwości .__ plik__
import enum
print (wyliczenie .__ plik__)
# lokalizacja biblioteki standardowej powinna być podobna do
# /usr/local/lib/python3.6/enum.py
Od Pythona 3.6 biblioteka enum34 nie jest już zgodna z biblioteką standardową. Biblioteka jest również niepotrzebna, więc możesz ją po prostu odinstalować.
pip uninstall -y enum34
Jeśli chcesz, aby kod działał w wersjach Pythona zarówno <= 3.4, jak i> 3.4, możesz wypróbować zgodność enum jako wymaganie. Instaluje tylko enum34 dla starszych wersji Pythona bez standardowej biblioteki enum.
|
Nie jestem pewien, czy nadal masz ten problem. Miałem podobny problem i udało mi się go rozwiązać po prostu wyłączając PYTHONPATH
$ unset PYTHONPATH
|
U mnie ten błąd wystąpił po zainstalowaniu komponentu gcloud app-engine-python w celu integracji z pycharm. Odinstalowanie modułu pomogło, nawet jeśli pycharm nie ładuje się teraz do silnika aplikacji.
|
Jeśli ktoś przychodzi tutaj z powodu tego błędu podczas uruchamiania projektu środowiska standardowego środowiska Python 3.7 z silnikiem aplikacji Google w PyCharm, to wszystko, co musisz zrobić, to
Upewnij się, że konfiguracja do uruchomienia dotyczy Flask, a nie konfiguracji Google App Engine.
Następnie wyłącz obsługę Google App Engine w Preferencjach >> Języki i struktura >> Google App Engine
Powodem jest ten link
Ogólnym celem jest to, aby Twoja aplikacja była w pełni przenośna i działała w dowolnym standardowym środowisku Pythona. Piszesz standardową aplikację w języku Python, a nie aplikację App Engine w języku Python. W ramach tej zmiany nie musisz już używać zastrzeżonych interfejsów API i usług App Engine do obsługi podstawowych funkcji aplikacji. W tej chwili interfejsy API App Engine nie są dostępne w środowisku wykonawczym Python 3.7.
Wydaje mi się, że kiedy tworzymy projekt w Pythonie 3.7 w PyCharm jako projekt silnika aplikacji Google, nadal próbuje zrobić to samo, co w przypadku aplikacji python2.7
|
ZRZECZENIE SIĘ: Proszę @ juanpa.arrivillaga, jeśli zobaczysz tę odpowiedź, napisz własną, a ja usunę ten post.
@ juanpa.arrivillaga wspomniał powyżej:
Czy jest przypadkiem nazwa pliku enum.py w twoim katalogu roboczym?
To był problem, który napotkałem. Nie byłem wtedy świadomy istnienia modułu wyliczeniowego w Pythonie i nazwałem mój plik testowy enum.py.
Ponieważ nazwa pliku to nazwa modułu, wystąpił konflikt. Więcej informacji o modułach tutaj: https://docs.python.org/2/tutorial/modules.html
|
Wyłączenie „Google App Engine Support” w ustawieniach pycharm rozwiązało ten problem.
|
Zainstalowanie wersji 1.1.8 enum34 działało dla mnie.
Udało mi się to naprawić, dodając enum34 = "== 1.1.8" do pyproject.toml.
Najwyraźniej enum34 miał funkcję w wersji 1.1.8, która pozwoliła uniknąć tego błędu, ale
ten cofnął się w wersji 1.1.9 +. Jest to jednak tylko obejście. Plik
lepszym rozwiązaniem byłoby używanie przez pakiety znaczników środowiskowych
nie musisz w ogóle instalować enum34, chyba że jest to konieczne.
Źródło: https://github.com/python-poetry/poetry/issues/1122
|
Odpowiedź Håkena Lida pomogła rozwiązać mój problem (dzięki!), W moim przypadku obecny w Pythonie3.7 z Flask w kontenerze Dockera (FROM tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7).
W moim przypadku enum34 był instalowany przez inną bibliotekę (pip install smartsheet-python-sdk).
Dla tych, którzy mają podobny problem z kontenerem Docker, oto mój ostateczny plik Dockerfile (rozebrany do odpowiednich wierszy):
FROM tiangolo / uwsgi-nginx-flask: python3.7-alpine3.7
...
URUCHOM pip install -r Requirements.txt
RUN pip uninstall -y enum34
...
|
W przypadku, gdy musisz zachować PYTHONPATH zarówno dla python2, jak i python3, możesz napisać instrukcje aliasu, aby ustawić właściwą PYTHONPATH w swoim bash_profile:
Zakoduj na stałe zmienne PYTHONPATH2 i PYTHONPATH3 w swoim ~ / .bash_profile i dodaj na końcu następujące aliasy:
alias python = 'eksportuj PYTHONPATH = $ {PYTHONPATH2}; python'
alias python3 = 'eksportuj PYTHONPATH = $ {PYTHONPATH3}; python3'
Mój python (odnosi się do python2), ponieważ częściej używam python2.
|
Kiedy kiedykolwiek miałem ten problem:
AttributeError: moduł „enum” nie ma atrybutu „IntFlag”
po prostu najpierw uruchamiam polecenie:
unset PYTHONPATH
a następnie uruchom moje żądane polecenie i odniosłem sukces.
|
Zrobiłem, używając pip install  --ignore-installed enum34
Po zainstalowaniu wymaganej biblioteki poszukaj ostrzeżeń podczas kompilacji.
Pojawił się następujący błąd: Używam starszej instalacji setup.py dla przyszłości, ponieważ pakiet 'koło' nie jest zainstalowany BŁĄD: pyejabberd 0.2.11 ma wymaganie enum34 == 1.1.2, ale będziesz mieć enum34 1.1.10, który jest niekompatybilny .
Aby rozwiązać ten problem, uruchom teraz polecenie: pip freeze | grep enum34. W ten sposób otrzymasz wersję zainstalowanego pliku enum34. Teraz odinstaluj go przez pip uninstall enum34 i zainstaluj ponownie wymaganą wersję jako pip install "enum34 == 1.1.20"
|
Jeśli masz ten problem podczas uruchamiania testów w PyCharm, upewnij się, że drugie pole nie jest zaznaczone wkonfiguracje.
|
Mam na komputerze zainstalowane Python 2 i Python 3. Z jakiegoś dziwnego powodu w sys.path Pythona 3 mam również ścieżkę do katalogu biblioteki pakietu witryny Python2, gdy wywoływany jest moduł re. Jeśli uruchomię Python 3 i zaimportuję enum i wydrukuję (enum .__ file__), system nie pokaże tej ścieżki Pythona 2 do pakietów witryn. Tak więc bardzo szorstki i brudny hack polega na bezpośrednim zmodyfikowaniu modułu, w którym importowane jest wyliczenie (postępuj zgodnie ze ścieżkami śledzenia) i wstawienie następującego kodu tuż przed zaimportowaniem wyliczenia:
import sys
for i, p in enumerate (sys.path):
jeśli „python27” w p.lower () lub „python2.7” w p.lower (): sys.path.pop (i)
import enum
To rozwiązało mój problem.
|
Nawet ja miałem ten problem podczas uruchamiania python -m grpc_tools.protoc --version
Musiałem ustawić PYTHONPATH do pakietów witryn i zamknąć wszystkie okna wiersza poleceń i zadziałało. Mam nadzieję, że to pomaga użytkownikom gRPC.
|
Miałem ten problem w Ubuntu20.04 w jupyterlab w moim wirtualnym jądrze ENV z Python3.8 i tensorflow 2.2.0. Komunikat o błędzie to
Traceback (ostatnie ostatnie połączenie):
Plik „/usr/lib/python2.7/runpy.py”, wiersz 174, w _run_module_as_main
„__main__”, fname, loader, pkg_name)
Plik „/usr/lib/python2.7/runpy.py”, wiersz 72, w _run_code
exec w run_globals
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel_launcher.py”, wiersz 15, w 
z ipykernel zaimportuj kernelapp jako aplikację
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/__init__.py”, wiersz 2, w 
z importu .connect *
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/ipykernel/connect.py”, wiersz 13, w 
z IPython.core.profiledir import ProfileDir
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/IPython/__init__.py”, wiersz 48, w 
z .core.application import Application
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/IPython/core/application.py”, wiersz 23, w 
z traitlets.config.application import Application, catch_config_error
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/__init__.py”, wiersz 1, w 
from .traitlets import *
Plik „/home/hu-mka/.local/lib/python2.7/site-packages/traitlets/traitlets.py”, wiersz 49, w 
import enum
ImportError: brak modułu o nazwie enum
Problem polegał na tym, że w dowiązaniu symbolicznym w / usr / bin / python wskazywał na python2. Rozwiązanie:
cd / usr / bin /
sudo ln -sf python3 python
Miejmy nadzieję, że użycie Pythona 2 wkrótce całkowicie zniknie.
|
Ten problem wystąpił podczas instalowania biblioteki transformers z HuggingFace. Było to spowodowane faktem, że pakiet enum34 został zainstalowany w moim środowisku, które przesłaniało wbudowane wyliczenie w Pythonie. Ten pakiet został prawdopodobnie zainstalowany przez coś, co zapewnia kompatybilność w przód, która nie jest już potrzebna w Pythonie 3.6+. Więc rozwiązanie jest proste
pip uninstall -y enum34
|
Niestety żadna z sugestii nie pomogła mi, ale po kilku dalszych wpisach w Google
pip install aenum
rozwiązał to dla mnie
|
Jeśli ktoś ma ten problem podczas próby uruchomienia jądra Jupyter z virtualenv, po prostu dodaj poprawną PYTHONPATH do kernel.json jądra virtualenv (na przykład Python 3):
{
"argv": [
"/usr/local/Cellar/python/3.6.5/bin/python3.6",
"-m",
"ipykernel_launcher",
"-fa",
„{plik_połączenia}”
],
"display_name": "Python 3 (TensorFlow)",
"język": "python",
"env": {
„PYTHONPATH”: „/Users/dimitrijer/git/mlai/.venv/lib/python3.6:/Users/dimitrijer/git/mlai/.venv/lib/python3.6/lib-dynload:/usr/local/ Cellar / python / 3.6.5 / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6: /Users/dimitrijer/git/mlai/.venv/lib/python3.6/site-packages ”
}
}
|
Twoja odpowiedź
StackExchange.ifUsing ("editor", function () {
StackExchange.using ("externalEditor", function () {
StackExchange.using ("snippets", function () {
StackExchange.snippets.init ();
});
});
}, "fragmenty kodu");
StackExchange.ready (function () {
var channelOptions = {
tagi: „” .split („”),
id: "1"
};
initTagRenderer ("". split (""), "" .split (""), channelOptions);
StackExchange.using ("externalEditor", function () {
// Muszę uruchomić edytor po fragmentach, jeśli fragmenty są włączone
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using ("snippets", function () {
createEditor ();
});
}
else {
createEditor ();
}
});
function createEditor () {
StackExchange.prepareEditor ({
useStacksEditor: false,
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: prawda,
przyrostek: "",
imageUploader: {
brandingHtml: „Obsługiwane przez \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" ikona-svg \ "width = \" 50 \ "height = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46.2665 7,94324 47,1084 7,58816C47.4091 7,46349 47,7169 7,36433 48,0099 7,26993 C48.9099 6,97997 49,672 6,73443 49,672 5,93063C49.672 5,22043 48,98324.61182 48.1414 4.61182C47.4335 4.61182 46.7256 4.91628 46.0943 5.50789C45.7307 4.9328 45.2525 4.66231 44.6595 4.66231C43.6264 4.66231 43.1481 5.28821 43.1481 6.59048V11.9512C43.1481 13.2535 43.6709 13.835.862 13.2535.862 13.2535.6709 / \ u003e \ u003cpath d = \ "M32.492 10.1419C32.492 12.6954 34.1182 14.0484 37.0451 14.0484C39.9723 14.0484 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.66232 409326.28906.59326.59326.2882326.28.98326.59326.58326.2882.66326.2882326.2882.2882326.28906.59326.28.98326.28.98326.28.58326.28.58326.58326.48906326.28.98326.28.98 .5948 10,8521 38,2696 11,5455 37,0451 11,5455C35,8209 11,5455 35,4954 10,8521 35,4954 9,60062V6,59049C35,4954 5,28821 35,0173 4,66232 34,0034 4,66232C32,9703 4,66232 32,492 5,28821 32,492V6,59049C35,4954 5,28821 35,0173 4,66232 34,0034 4,66232C32,9703 4,66232 32,492 5,28821 32,492 \ u200b \ u200b \ u200b \ u200b \ u200b \ u200b \ \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6.59049C30.9615 5.28821 30.4833 4.66231 29.995 4.9497 9 12.983C28.1301 27,2502 15,2321 14,4373 25,777 15.2321C24.8349 15,2321 24,1352 14,9821 23,5661 22,8472 14,5218 14.7787C23.176 22,5437 14,6393 14.5218C21.7977 14,5218 21,2429 15,0123 21,2429 22,9072 17,6335 15.6887C21.2429 25,6622 16,7375 17.6335ZM24.1317 9.27932C24.1317 7,94324 24,9928 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.0918 10.6321 27.2311 11.5116 26.1024 11.5116C24.9737 11.5116 24.1317 10.6491 24,1317 9.27932Z \ "/ \ u003e \ u003cpath. D = 1765,26. 13,8962C19.3298 13,8962 19,8079 13,2535 19,8079 11,9512V8.12928C19.8079 5,82936 18,4879 4,62866 16,4027 4,62866C15.1594 4,62866 14,279 4,98375 13,3609 5,88013C12,653 5,05154 11,6581 4,62866 10,3573 4,62866C9,34336 4,62866 8,57809 4,89931 7,9466 5,5079C7,58314 4,9328 7,10506 4,66232 6,51203 4,66232C5,47873 4,66232 5,00066 5,28821 5,00066 6,59049V11,9512C5,0006,9328 7,10506 4,66232 6,51203 4,66232C5,47873 4,66232 5,00066 5,28821 5,00066 6,59049V11,9512C5,00066 13,25792,862 13,862 8,07,83 13,2535,62,862 8,07,87 0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.9157 11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.9157 11.95 V11.9512Z \ "/ \ u003e \ u003cpath d = \" M3.31675 6,59049C3.31675 5,28821 2,83866 4,66232 1,82471 4,66232C0,791758 4,66232 0,313354 5,28821 0,313354 6,59049V11,9512C0,313354 13,25359 0,7917582 13,85,25,862 13,85358262 13,8535862 3,31675 11,9512V6,59049Z \ "/ \ u003e \ u003cpath d = \" M1,87209 0,400291C0,843612 0,400291 0 1,1159 0 1,98861C0 2,87869 0,822846 3,57676 1,87209 3,57676C2,90056 3,57676 3,7234 2,87869 3,7234 1,98861C3,7234 1,1159 290056 0,400291 1,87209 0,400291Z \ "fill = \" # 1BB76E \ "/ \ u003e \ u003c / svg \ u003e \ u003c / a \ u003e",
contentPolicyHtml: "Wkład użytkowników licencjonowany na mocy \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (polityka treści) \ u003c / a \ u003e",
allowUrls: true
},
onDemand: prawda,
discardSelector: ".discard-answer"
, natychmiastShowMarkdownHelp: true, enableTables: true, enableSnippets: true
});
}
});
Dziękujemy za przesłanie odpowiedzi na temat Stack Overflow!
Pamiętaj, aby odpowiedzieć na pytanie. Podaj szczegóły i udostępnij swoje badania!
Ale unikaj…
Proszenie o pomoc, wyjaśnienia lub odpowiadanie na inne odpowiedzi.
Wygłaszanie oświadczeń na podstawie opinii; poprzyj je referencjami lub osobistym doświadczeniem.
Aby dowiedzieć się więcej, zapoznaj się z naszymi wskazówkami dotyczącymi pisania świetnych odpowiedzi.
Wersja robocza zapisana
Wersja robocza odrzucona
Zarejestruj się lub zaloguj
StackExchange.ready (function () {
StackExchange.helpers.onClickDraftSave ('# login-link');
});
Zarejestruj się za pomocą Google
Zarejestruj się za pomocą Facebooka
Zarejestruj się przy użyciu adresu e-mail i hasła
Zatwierdź
Opublikuj jako gość
Nazwa
E-mail
Wymagane, ale nigdy nie pokazywane
StackExchange.ready (
function () {
StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f43124775% 2fwhy-python-3-6-1-throws-attributeerror-module-enum-has- no-attribute-intflag% 23new-answer ',' question_page ');
}
);
Opublikuj jako gość
Nazwa
E-mail
Wymagane, ale nigdy nie pokazywane
Opublikuj swoją odpowiedź
Odrzucać
Klikając „Opublikuj odpowiedź”, akceptujesz nasze warunki korzystania z usługi, politykę prywatności i politykę dotyczącą plików cookie
Nie szukasz odpowiedzi? Przeglądaj inne pytania otagowane python python-3.x enums python-3.6 attributeerror lub zadaj własne pytanie.